Federated identity management based on biometric data

ABSTRACT

Techniques are described for cryptographic key generation based on biometric data associated with a user. Biometric data, such as fingerprint(s) and/or heartbeat data, may be collected using one or more sensors in proximity to the user. The biometric data may be analyzed to generate a cryptographic key. In some implementations, the key may be employed by the user to access data, access certain (e.g., secure) feature(s) of an application, authenticate the user, digitally sign document(s), and/or for other purpose(s). In some implementations, the key may be re-generated for each access request or authentication instance, based on the user&#39;s fingerprint or other biometric data.

CROSS REFERENCE TO RELATED APPLICATION

The present disclosure is related to, and claims priority to, U.S. Provisional Patent Application Ser. No. 62/330,940, titled “Federated Identity Management Based On Biometric Data,” which was filed on May 3, 2016, the entirety of which is incorporated by reference into the present disclosure. The present disclosure is also related to U.S. patent application Ser. No. 15/441,494, titled “Cryptographic Key Generation From Biometric Data,” which was filed on Feb. 24, 2017, the entirety of which is incorporated by reference into the present disclosure.

BACKGROUND

Organizations and individuals that operate and/or manage computing systems may implement various security measures to prevent unauthorized individuals and processes from accessing secured data stored on the systems, gaining control of processes executing on the systems, introducing new (e.g., malicious) processes to the systems, and/or gaining access for other purposes. Traditionally, cryptographic information such as cryptographic keys may be employed to authenticate an individual and/or verify that an individual or process is authorized to access a system. Cryptographic keys may also be employed to secure communications over a network. With increasing processing power, traditionally generated cryptographic keys may be more vulnerable to attackers who are able to recreate and employ the keys to gain unauthorized access to systems, communications, data, and/or processes. Such attackers may also employ spoofed keys to impersonate an authorized individual or process.

SUMMARY

Implementations of the present disclosure are generally directed to identity management based at least partly on biometric data. More specifically, implementations are directed to generating a signature key for a user based at least partly on biometric data of the user, and based on the signature key generating a verification key to include in a certificate for use in verifying the user's identity.

In general, innovative aspects of the subject matter described in this specification can be embodied in methods that includes actions of: receiving first biometric data collected by at least one sensor, the first biometric data indicating at least one physiological characteristic of a user; generating a signature key for the user based on the first biometric data, wherein the signature key is a cryptographic key; and transmitting the signature key to a certification service and, in response, receiving a certificate generated by the certification service, the certificate including a verification key that corresponds to the signature key and that is generated by the certification service based on the signature key, the certificate being presentable to verify an identity of the user.

Implementations can optionally include one or more of the following features: the actions further include receiving second biometric data collected by the at least one sensor; the actions further include regenerating the signature key based on the second biometric data; the actions further include providing the certificate and the regenerated signature key to enable a third party service to verify the identity of the user based on a correspondence between the regenerated signature key and the verification key included in the certificate; the signature key for the user is unique among users of the third party service; the certificate includes an expiration timestamp; the first biometric data includes one or more of a fingerprint of the user, a heartbeat waveform of the user, a voiceprint waveform of the user, a retinal pattern of the user, and a neural activity waveform of the user; the first biometric data includes at least two different types of biometric data; the signature key is not stored in persistent memory; generating the signature key includes determining a plurality of values based on the first biometric data, each value in the plurality of values determined based on a respective portion of the first biometric data, and generating the signature key based at least partly on a combination of the plurality of values; the first biometric data includes at least one fingerprint; the plurality of values are determined based on different portions of the fingerprint; each value indicates a density of traces in the corresponding portion of the fingerprint; each value indicates an arrangement of traces in the corresponding portion of the fingerprint; the first biometric data includes at least one heartbeat waveform; the plurality of values are determined based on different portions of the heartbeat waveform; and/or generating the signature key further includes accessing seed data including a seed, and hashing the combination of the plurality of values, based on the seed, to generate the signature key.

Other implementations of any of the above aspects include corresponding systems, apparatus, and computer programs that are configured to perform the actions of the methods, encoded on computer storage devices. The present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein. The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

Implementations of the present disclosure provide one or more of the following advantages. By employing user-specific biometric data to generate a cryptographic key associated with the user, implementations provide a cryptographic key that is specific to the user (e.g., unique among a group of users), less prone to unauthorized duplication, and thus more secure than a key generated using traditional methods. Because the key may be employed to access applications and/or data on secured systems, implementations provide a technical improvement over traditional systems in which access is granted through use of a key that may be less secure. Moreover, the use of a key generated from biometric data enables an individual to be identified and/or authenticated more reliably than traditional techniques for identifying and/or authenticating an individual. The more reliable authentication provided by implementations may lead to fewer failed authentication attempts. Accordingly, implementations may consume less processing power, memory, storage space, network capacity, and/or other computing system resources than traditional authentication systems that may require more attempts before successfully authenticating a user. Further, implementations may provide for faster and/or more efficient authentication than the use of biometric authentication without key generation, thus providing for an authentication system that may consume less memory, less processing power, less storage, and/or less network capacity than other techniques. In some implementations, the private key that is generated based on biometric data may not be stored, and may be re-generated for each use. Accordingly, the risk of the private key being compromised may be reduced and/or eliminated.

It is appreciated that methods in accordance with the present disclosure can include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.

The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 depicts an example system for federated identity management based on biometric data, according to implementations of the present disclosure.

FIG. 2 depicts an example of fingerprint data analyzed to generate a cryptographic key, according to implementations of the present disclosure.

FIG. 3A depicts an example of fingerprint data analyzed to generate a cryptographic key based on portion densities, according to implementations of the present disclosure.

FIG. 3B depicts an example of fingerprint data analyzed to generate a cryptographic key based on arrangements of traces in portions of a fingerprint, according to implementations of the present disclosure.

FIG. 4 depicts an example of heartbeat data analyzed to generate a cryptographic key, according to implementations of the present disclosure.

FIG. 5 depicts a flow diagram of an example process for generating a signature (e.g., cryptographic) key based on biometric data, according to implementations of the present disclosure.

FIG. 6 depicts a flow diagram of an example process for providing a signature key to enable generation of a corresponding verification key, according to implementations of the present disclosure.

FIG. 7 depicts a flow diagram of an example process for generating a signature key to be used, with a verification key, to verify user identity, according to implementations of the present disclosure.

FIG. 8 depicts an example computing system, according to implementations of the present disclosure.

DETAILED DESCRIPTION

Implementations of the present disclosure are directed to systems, devices, methods, and computer-readable media for federated identity management based on biometric data for a user. Biometric data, such as fingerprint(s), heartbeat data, and/or other types of biometric data, may be collected using one or more sensors in proximity to the user. The biometric data may be analyzed to generate a signature key that is a cryptographic key. The signature key may be a private key that uniquely corresponds to the user. The generated signature key may be sent to a certification service, which may generate a verification key that corresponds to the signature key. In some instances, the verification key may be a public key. The verification key may be incorporated into a digital certificate that is generated by the certification service, and the digital certificate may be communicated to the user device of the user. The digital certificate may be stored in memory on the user device or elsewhere, and may be employed by the user to request access to secure third party systems and/or verify the user's identity to various third party service(s). For each request to access third party systems and/or verify the user's identity, biometric data may be collected and the signature key may be regenerated based on the biometric data. In some implementations, the signature key may be transient such that it is not stored in memory on the user device or elsewhere. In this way, implementations provide a signature key that is not vulnerable to unauthorized reproduction. For example, even if an unauthorized party were to gain access to the user device they would not be able to reproduce the signature key without gaining access to the user's biometric data and without knowing the algorithm used to generate the signature key based on the biometric data.

In some implementations, the signature key may be employed by the user to request access to data, request access to certain (e.g., secure) feature(s) of an application, request access to a third party service (e.g., such as an online shopping or financial service), request authentication and/or identity verification by a third party service, digitally sign document(s), and/or for other purpose(s). In some implementations, the signature key may be re-generated for each use, based on the user's fingerprint or other biometric data. Generation of a signature key based on biometric data may ensure that the generated key is unique to the particular user, or at least unique among a population of users that may also be making similar requests for access, identify verification, document signing, and so forth. The use of biometric data that is substantially the same over time for a particular user may ensure that the same signature key is re-generated in each instance based on the same biometric data. Thus, the signature key may be reproducible within an acceptable tolerance of variation, across different instances when the signature key is generated. Implementations may also ensure that unauthorized entities are prevented from spoofing the key associated with a particular user, given that other entities may not have access to the user's biometric data. Given the natural variation in biometric data, implementations may ensure the generation of different keys for different users, such that a generated key is unique for a particular user among a population of users.

The signature key that is generated based on biometric data may be employed within a federated identity system to manage the digital identity of a user. In a federated identity system, a certification authority may issue a certificate that the user may employ to establish their identity to other systems or services. A certificate may also be described herein as a passport. The certificate may digitally encode or otherwise include a public cryptographic key, such as the verification key described herein. An entity seeking to verify the user's identity for data access, document signature, crypto-currency transfers, and/or other activities may be presented with the certificate, and the entity may retrieve the public key from the certificate. If the public key corresponds to a private key of the user, such as the signature key described herein, the user's identity may be verified.

FIG. 1 depicts an example system for federated identity management based on biometric data, according to implementations of the present disclosure. As shown in the example of FIG. 1, the system may include a user device 102 that is owned by, operated by, and/or otherwise associated with a user 104. The user device 102 may include any type of computing device. In some examples, the user device 102 is a mobile and/or portable computing device such as a smartphone, tablet computer, wearable computer (e.g., watch, headset, glasses, etc.), and so forth. In some examples, the user device 102 is a less mobile device such as a desktop computer, laptop computer, internet-of-things (IoT) device, smart appliance, home entertainment system, gaming console, and so forth. The user device 102 may be owned by, operated by, and/or otherwise associated with one or more particular users 104. In some instances, the user device 102 may be a public device such as a public computer terminal, information kiosk, automated teller machine (ATM), vending machine, and so forth.

The user device 102 may include one or more sensors 106 that are configured to collect biometric data 108 regarding the user 104. Although examples herein may describe the sensor(s) 106 as component(s) of the user device 102, implementations are not so limited. In some implementations, one or more sensors 106 may be external to the user device 102 and communicatively coupled to the user device 102. The sensor(s) 106 may include a fingerprint scanner that is configured to scan at least a portion of a finger, hand, toe, foot, or other body part of the user 104 and generate fingerprint data. As used herein, a finger may include a thumb. In some examples, a fingerprint scanner may be specifically configured to scan a finger or other body part and generate fingerprint data. In some examples, the fingerprint scanner may be a camera or other general purpose image capture device that is useable to generate fingerprint data including image(s) of at least a portion of the user's finger or other body part. The sensor(s) 106 may also include camera(s) or other image capture device(s) that are useable to generate biometric data 108 that includes still image(s) and or video of the user's face, body, retina(s), or other body part(s).

In some implementations, the sensor(s) 106 may be configured to monitor the heartbeat, pulse, respiration, brain wave activity, and/or other physiological characteristics of the user 104. In such examples, the biometric data 108 may include data describing the heartbeat, pulse, respiration, brain wave activity, and so forth. Such biometric data 108 may be waveform data, for example showing a periodically repeating pattern of the user's heartbeat, brain wave (e.g., neural activity), and/or other physiological measurements. Implementations also support the collection and analysis of other types of biometric data 108. In some examples, the sensor(s) 106 may be external to the user device 102 and communicatively coupled to send collected biometric data 108 to the user device 102. For example, the sensor(s) 106 may include heartbeat, pulse, and/or brainwave sensors worn at the user's wrist, ankle, forehead, chest, or elsewhere. In examples where one or more sensors 106 are external to the user device 102, the sensor(s) 106 may collect biometric data 108 and communicate the biometric data 108 to the user device 102 via a wired or wireless connection (e.g., a BlueTooth™ or WiFi network). The sensor(s) 106 may also include audio capture device(s) such as microphone(s) to generate biometric data 108 that includes an audio recording of the user's voice. The audio data may be employed to generate biometric data 108 that includes a voice print of the user 104.

The biometric data 108 may be accessed by one or more key generation modules 110 executing on the user device 102 or elsewhere. The key generation module(s) 110 may analyze the biometric data 108 and generate a signature key 112 based on the biometric data 108 for a particular user 104. In some implementations, the key generation module(s) 110 may employ seed data 114 to generate the signature key 112. The generation of the signature key 112 based on the biometric data 108, and the use of the seed data 114 in generating the signature key 112, is described further below with reference to FIGS. 2-5.

Although the example of FIG. 1 shows the biometric data 108 being collected and analyzed (e.g., locally) on the user device 102 by the key generation module(s) 110, implementations are not so limited. In some implementations, the biometric data 108 may be sent from the user device 102 over one or more networks (not shown) to a remote computing device such as a server computing device. The key generation module(s) 110 may execute on the remote device to analyze the biometric data 108 and generate the signature key 112. The signature key 112 may be used on the remote device to verify the user's identity. In some instances, the remotely generated signature key 112 may be communicated to the user device 102 to be used for identity verification. In some implementations, the sensor(s) 106 may be external to the user device 102 and may communicate the biometric data 108 to the remote device for analysis and generation of the signature key 112, without the biometric data 108 passing through the user device 102. In some instances, to prevent unauthorized access to the signature key 112, the signature key 112 may be generated and used in the main (e.g., active) memory of the user device 102 without being stored in persistent storage on the user device 102 or elsewhere. Accordingly, the signature key 112 may be transient, and may be re-generated for each use based on newly collected biometric data 108.

The signature key 112 may be communicated over one or more networks from the user device 102 to a certification service executing on one or more certification devices 116. The certification device(s) 116 may include any suitable number and type of computing device, such as server computer(s), distributed computing device(s) (e.g., cloud server(s)), and so forth. In some implementations, the key generation module(s) 110 may provide, to the certification service 118, one or more user credentials that the user 104 has previously set up with the certification service 118. Such credential(s) may include but are not limited to a username, password, challenge question and answer, personal identification number (PIN), and/or at least a portion of the biometric data 108. If the credential(s) are accepted, the certification service 118 may receive the signature key 112.

The certification service 118 may analyze the signature key 112 and generate a verification key 122 corresponding to the signature key 112. The signature key 112 and verification key 122 may be a pair of cryptographic keys, such that the signature key 112 is a private key and the verification key 122 is a public key according to a public key infrastructure (PKI).

The certification service 118 may operate within a federated identity management system, and may generate a certificate 120 for the user 102. The certificate 120 may include the verification key 122. The certificate 120 including the verification key 122 may be sent over one or more networks to the key generation module(s) 110 or otherwise provided to the user device 102. The certificate 120 may be stored on the user device 102 or elsewhere, to be available for use in establishing the user's identity to local and/or remote (e.g., third party) applications, services, and/or devices.

Subsequent to receiving and storing the certificate 120, a process on the user device 102 may send an access request 128 to request access to a third party service 126 executing on one or more third party devices 124. The third party device(s) 124 may include any suitable number and type of computing device, such as server computer(s), distributed computing device(s) (e.g., cloud server(s)), and so forth. For example, a process on the user device 102 may request access, on behalf of the user 104, to secure data and/or an access-controlled service such as an online banking service, e-commerce site, and so forth. The access request 128 may also be a request to access a secure data storage system, such as a blockchain, to request or receive a crypto-currency funds transfer. In some instances, the access request 128 may be to digitally sign a document such as a digital contract. The access request 128 may include the certificate 120 to enable the receiving service to verify the identity of the user 104. To enable identity verification, the user device 102 may also provide the signature key 112. The third party service 126 may extract the verification key 122 from the certificate 120 and determine whether the verification key 122 and signature key 112 are an associated pair of keys. If the keys correspond to one another, the user's identity may be verified and the access request 128 may be approved. If the keys do not correspond, the user's identity may not be verified and the access request 128 may be denied.

FIG. 2 depicts an example of biometric data 108 including fingerprint data analyzed to generate a signature key 112, according to implementations of the present disclosure. In the example of FIG. 2, the biometric data 108 includes fingerprint data captured by a sensor 106 (e.g., a fingerprint scanner and/or camera) of a user device 102. One or more portions 202 of the fingerprint data may be analyzed and, for each portion 202, a portion value 204 may be determined. In some implementations, the portion value 204 may be a numeric value that indicates a characteristic of the portion 202 being analyzed.

FIGS. 3A and 3B depict techniques for determining the portion values 204 for various portions 202, according to implementations. In some implementations, as shown in FIG. 3A, the portion value 204 may be based on a portion density 302 indicating the amount and/or proportion of a portion 202 that includes fingerprint data such as fingerprint traces (e.g., fingerprint grooves). For example, the portion density 302 may indicate the proportion of black pixels to white pixels in a black and white rendering of the portion 202 of the fingerprint, or a percentage of a portion 202 that includes black pixels, where black may indicate the presence of fingerprint grooves or other biometric information in the portion 202. The portion value 204 may be in a range (e.g., from 0 to 255) that indicates the amount and/or density of traces in each portion 202.

In some implementations, as shown in FIG. 3B, the portion value 204 may be based on an arrangement of the traces within a portion 202. For example, the portion 202 may be subdivided into regions and each region may be assigned a (e.g., binary) value depending on whether the region is mostly full, or mostly empty, of trace data. The binary values may then be combined (e.g., concatenated) to determine the portion value 204 of the portion 202. Alternatively, the regions may be assigned row and column numbers and the row and columns numbers of those regions that include trace data may be combined to generate the portion value 204. Although the example of FIG. 3B depicts 16 regions, arranged in 4 rows and 4 columns, implementations support the use of any number of regions. Moreover, although the examples herein may describe a particular number of portions 202 with particular sizes and locations, implementations support the use of any number of portions 202, any portion size, and any portion location to be employed for analyzing the biometric data 108.

Implementations also support the use of other techniques for generating the portion value 204 for portion(s) 202 of the fingerprint. For example, portion values 204 may be determined based on a type of pattern exhibited by the fingerprint, a proportion of horizontal vs. vertical traces in the fingerprint, a degree of concavity exhibited by the curves of the traces, and/or other characteristics of the fingerprint in one or more portions 202.

Returning to FIG. 2, the multiple portion values 204 may be combined (e.g., concatenated) to generate combined portion values 206. The combined portion values 206 may then be employed to generate the signature key 112. For example, the combined portion values 206 may be hashed based on a hash seed in the seed data 114 to generate the signature key 112. In some implementations, the combined portion values 206 may be combined with a nonce prior to hashing. The nonce may be a single-use number that is randomly or pseudo-randomly generated. The combined portion values 206 and nonce may be hashed to generate the signature key 112. The use of a nonce may prevent an individual from using an image of the user's fingerprint (e.g., taken without authorization of the user 104) to recover the signature key 112. Use of a nonce may also enable implementations to employ the same biometric data 108 to be employed to generate multiple, different signature keys 112. The generation of a different signature key 112 based on a different nonce may be performed if a user 104 needs a new key for any reason (e.g., if the previous signature key 112 is compromised and/or insecure).

In some implementations, the numeric portion value 204 for each portion 202 may be randomly generated within a tolerance range (e.g., plus or minus five percent) of the measured numeric value of the portion 202. In some implementations, the tolerance, portion size, number of portions 202, location of portions 202, and/or hash seed may be included in the seed data 114. In some implementations, the portions 202 may have a consistent, pre-determined size and the locations of the portions 202 to analyze within the fingerprint may be randomized. The tolerance setting may be used to round the measurement of fill of the portion 202 and can be calibrated to the hardware resources of the computing device where the biometric data 108 is being analyzed. For example, the tolerance may be calibrated based on the processing and/or memory resources of the device to ensure that the signature key 112 may be generated in real time with respect to the collection of the biometric data 108, e.g., within a predetermined and/or short period of time following the data collection. The use of a tolerance range in generating the portion values 204 may be described as fuzzy analysis or fuzzy logic. In some implementations, the fingerprint image may be rotated to a consistent angle prior to analyzing the fingerprint data to generate the signature key 112.

The tolerance, portion size, and/or number of portions 202 may be varied to achieve the desired level of security for the signature key 112. For example, the larger the portion size, the more accurate the matches may be when comparing a previously generated signature key 112 to a current fingerprint. The tolerance, portion size, and/or number of portion may be set by a device manufacturer, set by a user 104, and/or automatically set based on processing power available on the device where the analysis is performed. For example, a device with low processing capability may collect and/or analyze data for two portions 202, whereas a device with higher processing capability may collect and/or analyze data for more portions 202. Tolerance and portion size may enable the handling of errors and/or misreads, and may provide for the faster reading of fingerprints. In some implementations, the biometric data 108 may include data for those portions 202 of the fingerprint to be analyzed, and may omit other parts of the fingerprint.

The tolerance, number of portions, and/or portion size may be calibrated to achieve a balance between security and user experience. A high tolerance and/or larger portion size may be used to ensure that the same signature key 112 is generated based on the same user's fingerprint. More portions, finer granularity (e.g., smaller portion size), and/or lower tolerance may provide for a more secure signature key 112, but may also lead to a higher probability that the same fingerprint generates different signature keys 112.

In some implementations, a seed number may be employed in generating the signature key 112 based on fingerprint data or other biometric data 108. The seed number may be used in hashing the combined portion values 206 to generate the signature key 112. The seed number may be included in the seed data 114. The seed data 114 may also indicate other parameters for key generation, such as the number of portions 202, the portion size, the portion locations, the order of portions when concatenating the portion values 204 to generate the combined portion values 206, and/or the tolerance to be used for generating the portion values 204. If a signature key 112 is compromised (e.g., if an unauthorized entity may have gained access to the signature key 112), the seed data 114 may be reset to force the generation of a new signature key 112 based on one or more of different portions, different portion size, different portion order, a different nonce (e.g., random number), and so forth. In some examples, the same set of portions 202 may be employed to generate a different signature key 112 based on different seed data 114.

FIG. 4 depicts an example of biometric data 108 including heartbeat data analyzed to generate a signature key 112, according to implementations of the present disclosure. Heartbeat data may be used instead of or in addition to fingerprint data to generate a signature key 112. As shown in the example of FIG. 4, different portions of a measured heartbeat waveform may be analyzed to determine portion values 204 that indicate particular characteristic(s) of the analyzed portions 202. The portion values 204 may be combined to generate the combined portion values 206, and the combined portion values 206 may be hashed, combined with a nonce, and/or otherwise processed to generate a signature key 112 as described above. In some instances, the portion values 204 may be combined with other keys and/or other portion values based on other biometric data. The portion values 204 may be based on pulse width, pulse height, spacing between pulses, and/or other characteristics of the waveform. Any portion of the heartbeat pattern may be used to generate portion values 204. In some examples, the heartbeat may be measured while the user 104 is in a resting state, to ensure that the same signature key 112 is generated at different times based on the user's heartbeat. In some implementations, heartbeat may be measured over a period of time (e.g., throughout the day) by a wearable device (e.g., a watch computing device), and averaged over time to determine the typical heartbeat waveform for the user 104. That typical heartbeat waveform may be analyzed to generate the signature key 112.

In some examples, signature keys 112 based on heartbeat analysis may be subject to a high likelihood of collision, given similarities between individual heartbeat patterns. Accordingly, in some implementations a signature key 112 is generated based on a combination of fingerprint data and heartbeat data. For example, a user 104 may wear a watch computing device 102, other wearable device, and/or wearable sensor(s) 106 throughout the day. The sensor(s) 106 included in or external to the user device 102 may periodically measure the user's heartbeat and the heartbeat data may be stored on the user device 102 or elsewhere. The various measured samples of heartbeat data may be averaged or otherwise correlated to determine a typical heartbeat waveform for the user 104. The typical waveform may be stored to be available for use in key generation. When the user 104 is preparing to sign a document, request access to data, request authentication, and/or perform some other activity, the user 104 may place their finger on the sensor 106 of the smartphone or other user device 102 to enable the sensor 106 to capture the fingerprint data. The smartphone may be paired with the watch and configured to retrieve the stored heartbeat data from the watch. The key generation module(s) 110 executing on the smartphone or another device may use the fingerprint data and retrieved heartbeat data to generate the signature key 112.

In some implementations, the signature key 112 may be generated each time the user 104 attempts an activity that employs the signature key 112, such as authentication, signing a document, accessing secure data and/or systems, and/or other activities. The activity may be allowed if the re-generated signature key 112 corresponds to the verification key 122 included in the user's certificate 120. In some implementations, the key signature 112 may be useable under particular circumstances, such as when a watch computing device is being worn by the user 104, is activated or unlocked, and/or is paired with the user's smartphone. In such implementations, the presence and unlocked state of the worn watch device may be used to authorize the use of the generated signature key 112 for signing documents or performing other activities.

Although examples herein may describe the use of fingerprint data and heartbeat data for generating signature keys 112, implementations are not limited to any particular type(s) of biometric data. Other biometric data 108 may also be used for key generation, such as retina scan data, facial image data, voiceprint data, brainwave activity data, and so forth. Facial image data may be employed to generate a signature key 112 by analyzing portions of the face at particular points of interest such as the eyes, nose, mouth, and so forth. Portion values may be determined based on characteristics of the portions and/or the relationship (e.g., distance and/or orientation) between such points of interest, and the signature key 112 may be generated based on the combined portion values. Retina scan data may be employed by analyzing various portions of the retina of a user 104 similarly to the analysis of the fingerprint data. Voiceprint data may be employed by analyzing portions of the waveform of the collected audio data of the user's voice, and may be similar to the waveform analysis of the heartbeat data. Implementations support the use of any suitable biometric data 108, and any suitable combination of different types of biometric data 108, to generate the signature key 112. In some implementations, at least two different types of biometric data 108 may be combined or otherwise employed to generate the signature key 112. The combination of multiple types of biometric data 108 may generate a key 112 that is more secure than a key 112 that is generated using a single type of biometric data 108.

FIG. 5 depicts a flow diagram of an example process for generating a signature key 112 based on biometric data 108, according to implementations of the present disclosure. Operations of the process may be performed by the sensor(s) 106, the key generation module(s) 110, and/or other software and/or hardware components of the user device 102 or other computing device(s).

The biometric data 108 may be received (502) or otherwise accessed. In some implementations, the seed data 114 may also be accessed (504). As described above, the biometric data 108 may be analyzed (506) to determine the portion values 204 corresponding to portions 202 of the biometric data 108. In some implementations, the analysis may be based at least partly on the seed data 114. For example, the seed data 114 may specify a number of portions 202, a size of the portions 202, locations of the portions 202, a tolerance for portion value generation, and/or other information useable for generating portion values 204.

The portion values 204 may be combined (508) to generate the combined portion values 206. Combination may include concatenation of the portion values 204, or some other operation. The seed data 114 may specify an order in which the portion values 204 are to be combined to generate the combined portion values 206.

In some implementations, a nonce is incorporated (510) into the combined portion values 206 prior to hashing. The combined portion values 206 are hashed (512) to generate the signature key 112. In some implementations, the seed data 114 includes a seed to be used in hashing the combined portion values 206 to generate the signature key 112. The signature key 112 may be sent to the certification service 118 and used to generate the verification key 122, as described further with reference to FIG. 7. The signature key 112 may also be employed with the verification key 122 to verify the identity of the user 104, as described further with reference to FIG. 8. User identity may be verified for various purposes, including but not limited to: authenticating the user 104, enabling the user's access to secure data, enabling access to a system, enabling access to a secure section of an application, signing a digital document, participating in a secure (e.g., crypto-currency) transaction, and so forth. In some implementations, the signature key 112 may not be stored on the user device 102 or elsewhere. Instead, the signature key 112 may be generated for each instance when it is used for authentication, access requests, document signatures, and/or other purposes. Generation of the signature key 112 for each use may prevent the signature key 112 from being compromised.

FIG. 6 depicts a flow diagram of an example process for providing a signature key 112 to enable generation of a corresponding verification key 122 and certificate 120, according to implementations of the present disclosure. Operations of the process may be performed by the sensor(s) 106, the key generation module(s) 110, and/or other software and/or hardware components of the user device 102 or other computing device(s).

The biometric data 108 may be received (602) or otherwise accessed at the user device 102. The signature key 112 may be generated (604) based on the biometric data 108 as described above. The signature key 112 may be provided (606) to the certification service 118. The certification service 118 may generate (608) a verification key 122 that corresponds to the signature key 112 (e.g., in a PKI key pair). The certification service 118 may generate a certificate 120 that includes the verification key 122. The certificate 120 may be sent (610) to the user device 102. The certificate 120 may be stored (612) on the user device 102 to be available for subsequent access requests or other actions. In some examples, the certificate 120 may be stored in a secure portion of memory on the user device 102 to prevent unauthorized access to the certificate 120.

FIG. 7 depicts a flow diagram of an example process for generating a signature key 112 to be used, with a verification key 122, to verify user identity, according to implementations of the present disclosure. Operations of the process may be performed by the sensor(s) 106, the key generation module(s) 110, and/or other software and/or hardware components of the user device 102 or other computing device(s).

The biometric data 108 may be received (702) or otherwise accessed at the user device 102. The signature key 112 may be generated (704) based on the biometric data 108 as described above. The signature key 112 may be provided (706), with the certificate 120, to a third party service 126. The third party service 126 may verify the identity of the user 102 by determining whether there is a correspondence between the signature key 112 and the verification key 122 that is encoded in the certificate 120. If so, access may be allowed. If not, access may be blocked.

In some examples, the certificate 120 may be provided for verifying identity in blockchain transactions. In such examples, the certificate 120 may be described as a passport that enables blockchain access. A passport may store data that digitally associates an individual (e.g., a user 104) with a single digital token, such as verification key 122. In some instances, a passport may be issued by a trusted authority such as the certification service 118. The trusted authority may be any entity that is recognized as trustworthy by various parties involved in blockchain transactions. An authority may issue a passport after verifying that an individual is who they claim to be, and the authority may associate the individual's identity with a blockchain address. Subsequently, the individual may employ the passport to establish their identity in a blockchain transaction, such as to sign a message or a document stored in a blockchain. A recipient entity may examine the passport to determine whether it was issued by a trusted authority. If so, the recipient entity may trust the individual's purported identity, and approve the transaction or take other appropriate actions. If the passport is not issued by a trusted authority, the recipient entity may reject the transaction or ask for additional information to verify the individual's identity.

Passport creation may include steps performed on the user device 102 and/or on a device associated with the authority such as the certification device(s) 116. A user 104 may have a private key, e.g., a signature key 112, used during passport creation. In some examples, a software component may operate to generate the private key and provide it to the user. Alternatively, biometric data 108 may be used to generate the private key as described above. The user may provide the private key to the trusted authority. The trusted authority may use the private key to generate a corresponding public key which is incorporated into a generated passport. The passport may be provided to the user. In some examples, the user may provide the public key as sufficient proof of identity for passport generation. In some examples, the blockchain address is sufficient proof. In some examples, use of biometric data 108 may ensure that an individual is only allowed to have one passport registered and that the passport is only accessible by the associated individual. To secure passports and ensure that a passport is tied to a particular individual, the same passport may be regenerated using biometric data that is unique to an individual, such as fingerprint data. The biometric data may be represented by a key as described above. Moreover, access to the passport may be restricted and control through authentication method(s) that employ biometric data. The public key in the passport may be visible when the user is signing documents, but the private key may remain hidden. In some instances, the private key may be stored securely on the user device or elsewhere, and/or may not be visible to the user. As described above, the private key may be created as needed based on biometric data 108.

The passport may be used by an individual to establish their identity when updating data stored in a blockchain, such as signing a document stored in a blockchain. For example, the passport may be employed when signing deeds, titles, contracts, and/or other documents stored in a blockchain. The passport may also be employed as a real-world passport, e.g., in scenarios when cross-border transits are handled electronically. Use of a passport enables verification of personal identities used on blockchains automatically without manual interrogation. Traditionally, notaries are employed to verify that an individual has the proper identification at the time of signing a document. Such verification of a physical document is susceptible to falsification and fraud. Through use of a digital passport, implementations enable a shift away from traditional notaries, providing a more secure technique for identity verification.

The passport may be an abstract data representation that includes a public and private key pair, where the private key may be generated based on biometric data as described above. The passport may also include other data such as a person's name, address, image(s), and/or identifier(s) such as social security number (SSN), driver's license number, government-issued passport number, and so forth. In some examples, the passport may include a creation date. The passport may also identify the trusted authority that issued the passport. A passport may be used as an individual's custom seal which, when enforced correctly, would be difficult or impossible to steal, forge, or tamper with. The private key generated from the biometric data may be used to generate a passport that includes the corresponding public key, and the passport may be associated with an address. In some examples, other entities may not know the identity of the user associated with the passport until the user begins signing documents using the passport.

In some examples, a passport could be linked with a person's reputation, and may be used instead of credit records, driver's license, social security number, or national passports, given that the passport may be a more secure token than a spoof-able piece of paper. In some scenarios, an individual may be required to provide a social security number or a driver's license number to prove their identity. Accordingly, identity theft is a problem because such documents are easy to forge and are widely used. For situations that require more security, other documents may be required such as a birth certificate, driver's license, picture in a yearbook, utility bills, and so forth. These forms of identification are also spoof-able and security systems may be rendered even more vulnerable as more trust is put in a larger number of vulnerable security documents. In comparison, implementations may provide a digital passport that is harder to steal, forge, or tamper with compared to traditional paper documents.

In blockchain environments today, anyone can claim ownership of an address by signing a message that includes the address. For example, a person can register an address with a blockchain-based digital currency network (e.g., BitCoin™) and use that address for sending or receiving money. The address can also be used to sign messages. Thus, the “identity verification” currently performed in blockchain environments may only prove that an individual has access to an address, and may not actually verify the identity of the individual using the address. The implementations described herein may provide a blockchain environment with a trusted technique for associating an identity with an address. In some examples, a user's identity may be verified by providing one or more messages that are signed using the user's biometric-generated key, thus proving that the user owns the key and is associated with the identity. Such message(s) may be unique and/or unrepeatable.

To provide further context for the present disclosure, a high-level discussion of blockchain technology is provided. In general, a blockchain is a public ledger of all transactions that have ever been executed in one or more contexts (e.g., negotiable instrument transactions, digital currency transactions, etc.). A blockchain constantly grows as completed blocks are added with a new set of transactions. In some examples, a single block is provided from multiple transactions (e.g., multiple deposits of different checks by different people). In general, blocks are added to the blockchain in a linear, chronological order by one or more computing devices in a peer-to-peer network of interconnected computing devices that execute a blockchain protocol. In short, the peer-to-peer network can be described as a plurality of interconnected nodes, each node being a computing device that uses a client to validate and relay transactions (e.g., deposits of checks). Each node maintains a copy of the blockchain, which is automatically downloaded to the node upon joining the peer-to-peer network. The blockchain protocol provides a secure and reliable method of updating the blockchain, copies of which are distributed across the peer-to-peer network, without use of a central authority.

Because all users (e.g., financial institutions) need to know all previous transactions (e.g., deposits, withdrawals, etc.) to validate a requested transaction, all users must agree on which transactions have actually occurred, and in which order. For example, if two users observe different transaction histories, they will be unable to come to the same conclusion regarding the validity of a transaction. The blockchain enables all users to come to an agreement as to transactions that have already occurred, and in which order. In short, and as described in further detail below, a ledger of transactions is agreed to based on the amount of work required to add a transaction to the ledger of transactions (e.g., add a block to the blockchain). In this context, the work is a task that is difficult for any single node (e.g., computing device) in the peer-to-peer network to quickly complete, but is relatively easy for a node (e.g., computing device) to verify.

The peer-to-peer network includes so-called miners (e.g., computing devices) that add blocks to a blockchain based on the blockchain protocol. In general, multiple miners validate transactions that are to be added to a block, and compete (e.g., perform work, as introduced above) to have their block added to the blockchain. Validation of transactions includes verifying digital signatures associated with respective transactions. For a block to be added to the blockchain, a miner must demonstrate a proof of work before their proposed block of transactions is accepted by the peer-to-peer network, and is added to the blockchain. A blockchain protocol includes a proof of work scheme that is based on a cryptographic hash function (CHF). An example CHF includes the secure hash algorithm 256 (SHA-256). In general, the CHF receives information as input, and provides a hash value as output, the hash value being of a predetermined length. For example, SHA-256 outputs a 256-bit (32-byte, 64-character) hash value. In some examples, the hash value is a one-way hash value, in that the hash value cannot be ‘un-hashed’ to determine what the input was. The blockchain protocol can require multiple pieces of information as input to the CHF. For example, the input to the CHF can include a reference to the previous (most recent) block in the blockchain, details of the transaction(s) that are to be included in the to be created block, and a nonce value (e.g., a random number used only once).

As introduced above, multiple nodes compete to hash a set of transactions and provide the next block that is to be added to the blockchain. The blockchain protocol provides a threshold hash to qualify a block to be added to the blockchain. For example, the threshold hash can include a predefined number of zeros (0's) that the hash value must have at the beginning (e.g., at least the first four characters of the hash value must each be zero). The higher the number of zeros, the more time-consuming it is to arrive at a qualifying hash value.

In accordance with the blockchain protocol, each miner in the peer-to-peer network receives transaction information for one or more transactions that are to be included in a block that is to be added next in the blockchain. Each miner provides the reference to the previous (most recent) block in the blockchain, details of the transaction(s) that are to be included in the to-be-created block, and the nonce value to the CHF to provide a hash value. If the hash value does not meet the threshold hash (e.g., the first four characters of the hash value are not each zero), the miner starts again to provide another hash value. If the hash value meets the threshold hash (e.g., at least the first four characters of the hash value are each zero), the respective miner successfully created the next block that is to be added to the blockchain. Consequently, the respective miner's block is broadcast across the peer-to-peer network. All other miners cease work (because one miner was already successful), and all copies of the blockchain are updated across the peer-to-peer network to append the block to the blockchain. Each miner may be required to produce hundreds or thousands of hash values, before any one miner provides a qualifying hash value (e.g., at least the first four characters of the hash value are each zero).

In some cases, the distributed ledger system can include one or more sidechains. A sidechain can be described as a blockchain that validates data from other blockchains. In some examples, a sidechain enables ledger assets (e.g., a digital currency) to be transferred between multiple blockchains.

FIG. 8 depicts an example computing system, according to implementations of the present disclosure. The system 800 may be used for any of the operations described with respect to the various implementations discussed herein. For example, the system 800 may be included, at least in part, in the user device 102, the certification device(s) 116, the third party device(s) 124, and/or other device(s) described herein. The system 800 may include one or more processors 810, a memory 820, one or more storage devices 830, and one or more input/output (I/O) devices 850 controllable through one or more I/O interfaces 840. The various components 810, 820, 830, 840, or 850 may be interconnected through at least one system bus 860, which may enable the transfer of data between the various modules and components of the system 800.

The processor(s) 810 may be configured to process instructions for execution within the system 800. The processor(s) 810 may include single-threaded processor(s), multi-threaded processor(s), or both. The processor(s) 810 may be configured to process instructions stored in the memory 820 or on the storage device(s) 830. The processor(s) 810 may include hardware-based processor(s) each including one or more cores. The processor(s) 810 may include general purpose processor(s), special purpose processor(s), or both.

The memory 820 may store information within the system 800. In some implementations, the memory 820 includes one or more computer-readable media. The memory 820 may include any number of volatile memory units, any number of non-volatile memory units, or both volatile and non-volatile memory units. The memory 820 may include read-only memory, random access memory, or both. In some examples, the memory 820 may be employed as active or physical memory by one or more executing software modules.

The storage device(s) 830 may be configured to provide (e.g., persistent) mass storage for the system 800. In some implementations, the storage device(s) 830 may include one or more computer-readable media. For example, the storage device(s) 830 may include a floppy disk device, a hard disk device, an optical disk device, or a tape device. The storage device(s) 830 may include read-only memory, random access memory, or both. The storage device(s) 830 may include one or more of an internal hard drive, an external hard drive, or a removable drive.

One or both of the memory 820 or the storage device(s) 830 may include one or more computer-readable storage media (CRSM). The CRSM may include one or more of an electronic storage medium, a magnetic storage medium, an optical storage medium, a magneto-optical storage medium, a quantum storage medium, a mechanical computer storage medium, and so forth. The CRSM may provide storage of computer-readable instructions describing data structures, processes, applications, programs, other modules, or other data for the operation of the system 800. In some implementations, the CRSM may include a data store that provides storage of computer-readable instructions or other information in a non-transitory format. The CRSM may be incorporated into the system 800 or may be external with respect to the system 800. The CRSM may include read-only memory, random access memory, or both. One or more CRSM suitable for tangibly embodying computer program instructions and data may include any type of non-volatile memory, including but not limited to: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. In some examples, the processor(s) 810 and the memory 820 may be supplemented by, or incorporated into, one or more application-specific integrated circuits (ASICs).

The system 800 may include one or more I/O devices 850. The I/O device(s) 850 may include one or more input devices such as a keyboard, a mouse, a pen, a game controller, a touch input device, an audio input device (e.g., a microphone), a gestural input device, a haptic input device, an image or video capture device (e.g., a camera), or other devices. In some examples, the I/O device(s) 850 may also include one or more output devices such as a display, LED(s), an audio output device (e.g., a speaker), a printer, a haptic output device, and so forth. The I/O device(s) 850 may be physically incorporated in one or more computing devices of the system 800, or may be external with respect to one or more computing devices of the system 800.

The system 800 may include one or more I/O interfaces 840 to enable components or modules of the system 800 to control, interface with, or otherwise communicate with the I/O device(s) 850. The I/O interface(s) 840 may enable information to be transferred in or out of the system 800, or between components of the system 800, through serial communication, parallel communication, or other types of communication. For example, the I/O interface(s) 840 may comply with a version of the RS-232 standard for serial ports, or with a version of the IEEE 1284 standard for parallel ports. As another example, the I/O interface(s) 840 may be configured to provide a connection over Universal Serial Bus (USB) or Ethernet. In some examples, the I/O interface(s) 840 may be configured to provide a serial connection that is compliant with a version of the IEEE 1394 standard.

The I/O interface(s) 840 may also include one or more network interfaces that enable communications between computing devices in the system 800, or between the system 800 and other network-connected computing systems. The network interface(s) may include one or more network interface controllers (NICs) or other types of transceiver devices configured to send and receive communications over one or more networks using any network protocol.

Computing devices of the system 800 may communicate with one another, or with other computing devices, using one or more networks. Such networks may include public networks such as the internet, private networks such as an institutional or personal intranet, or any combination of private and public networks. The networks may include any type of wired or wireless network, including but not limited to local area networks (LANs), wide area networks (WANs), wireless WANs (WWANs), wireless LANs (WLANs), mobile communications networks (e.g., 3G, 4G, Edge, etc.), and so forth. In some implementations, the communications between computing devices may be encrypted or otherwise secured. For example, communications may employ one or more public or private cryptographic keys, ciphers, digital certificates, or other credentials supported by a security protocol, such as any version of the Secure Sockets Layer (SSL) or the Transport Layer Security (TLS) protocol.

The system 800 may include any number of computing devices of any type. The computing device(s) may include, but are not limited to: a personal computer, a smartphone, a tablet computer, a wearable computer, an implanted computer, a mobile gaming device, an electronic book reader, an automotive computer, a desktop computer, a laptop computer, a notebook computer, a game console, a home entertainment device, a network computer, a server computer, a mainframe computer, a distributed computing device (e.g., a cloud computing device), a microcomputer, a system on a chip (SoC), a system in a package (SiP), and so forth. Although examples herein may describe computing device(s) as physical device(s), implementations are not so limited. In some examples, a computing device may include one or more of a virtual computing environment, a hypervisor, an emulation, or a virtual machine executing on one or more physical computing devices. In some examples, two or more computing devices may include a cluster, cloud, farm, or other grouping of multiple devices that coordinate operations to provide load balancing, failover support, parallel processing capabilities, shared storage resources, shared networking capabilities, or other aspects.

Implementations and all of the functional operations described in this specification may be realized in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations may be realized as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “computing system” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.

A computer program (also known as a program, software, software application, script, or code) may be written in any appropriate form of programming language, including compiled or interpreted languages, and it may be deployed in any appropriate form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any appropriate kind of digital computer. Generally, a processor may receive instructions and data from a read only memory or a random access memory or both. Elements of a computer can include a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer may also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer may be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations may be realized on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any appropriate form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any appropriate form, including acoustic, speech, or tactile input.

Implementations may be realized in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical UI or a web browser through which a user may interact with an implementation, or any appropriate combination of one or more such back end, middleware, or front end components. The components of the system may be interconnected by any appropriate form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.

The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specifics, these should not be construed as limitations on the scope of the disclosure or of what may be claimed, but rather as descriptions of features specific to particular implementations. Certain features that are described in this specification in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some examples be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products.

A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed. Accordingly, other implementations are within the scope of the following claims. 

What is claimed is:
 1. A computer-implemented method performed by at least one hardware processor, the method comprising: receiving, by the at least one hardware processor, first biometric data collected by at least one sensor at a first time, wherein the first biometric data is indicative of at least one physiological characteristic of a user; generating, by the at least one hardware processor, a signature key for the user based on the first biometric data, wherein the signature key is a cryptographic key, and wherein the signature key is a private key; transmitting, by the at least one hardware processor, the signature key to a certification service; receiving, by the at least one hardware processor, a certificate generated by the certification service, wherein the certificate includes a verification key that corresponds to the signature key and that is generated by the certification service based on the signature key, the certificate is presentable to verify an identity of the user, wherein the verification key is a public key; receiving, by the at least one hardware processor, second biometric data collected by the at least one sensor at a second time that is different than the first time; generating, by the at least one hardware processor, an additional signature key based on the second biometric data; transmitting, by the at least one hardware processor, the certificate and the additional signature key to a third party service to verify the identity of the user based on the additional signature key and the verification key included in the certificate; and receiving, by the at least one hardware processor, access to the third party service in response to the third party service determining that the additional signature key is associated with the verification key.
 2. The method of claim 1, wherein the additional signature key for the user is different than other signature keys associated with other users of the third party service.
 3. The method of claim 1, wherein the certificate includes an expiration timestamp.
 4. The method of claim 1, wherein the first biometric data includes one or more of: a fingerprint of the user; a heartbeat waveform of the user; a voiceprint waveform of the user; a retinal pattern of the user; and a neural activity waveform of the user.
 5. The method of claim 1, wherein the first biometric data includes at least two different types of biometric data.
 6. The method of claim 1, wherein the signature key is not stored in persistent memory.
 7. The method of claim 1, wherein generating the signature key includes: analyzing a plurality of portions of the first biometric data; determining a portion value for each portion of the plurality of portions to generate a plurality of portion values; combining the plurality of portion values to generate a plurality of combined portion values; and processing the plurality of combined portion values to generate the signature key.
 8. The method of claim 7, wherein: the first biometric data includes at least one fingerprint; and the plurality of portion values are determined based on different portions of the fingerprint.
 9. The method of claim 8, wherein each value indicates a density of traces in the corresponding portion of the fingerprint.
 10. The method of claim 8, wherein each value indicates an arrangement of traces in the corresponding portion of the fingerprint.
 11. The method of claim 7, wherein: the first biometric data includes at least one heartbeat waveform; and the plurality of portion values is determined based on different portions of the heartbeat waveform.
 12. The method of claim 7, wherein generating the signature key further includes: accessing seed data including a seed; and hashing the combination of the plurality of portion values based on the seed to generate the signature key.
 13. A system, comprising: at least one hardware processor; and a memory communicatively coupled to the at least one hardware processor, the memory storing instructions which, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising: receiving first biometric data collected by at least one sensor at a first time, wherein the first biometric data is indicative of at least one physiological characteristic of a user; generating a signature key for the user based on the first biometric data, wherein the signature key is a cryptographic key, and wherein the signature key is a private key; transmitting the signature key to a certification service; receiving a certificate generated by the certification service, wherein the certificate includes a verification key that corresponds to the signature key and that is generated by the certification service based on the signature key, the certificate is presentable to verify an identity of the user, wherein the verification key is a public key; receiving second biometric data collected by the at least one sensor at a second time that is different than the first time; generating an additional signature key based on the second biometric data; transmitting the certificate and the additional signature key to a third party service to verify the identity of the user based on the additional signature key and the verification key included in the certificate; and receiving access to the third party service in response to the third party service determining that the additional signature key is associated with the verification key.
 14. The system of claim 13, wherein the signature key for the user is unique among users of the third party service.
 15. The system of claim 13, wherein the certificate includes an expiration timestamp.
 16. The system of claim 13, wherein the first biometric data includes one or more of: a fingerprint of the user; a heartbeat waveform of the user; a voiceprint waveform of the user; a retinal pattern of the user; and a neural activity waveform of the user.
 17. The system of claim 13, wherein the first biometric data includes at least two different types of biometric data.
 18. One or more computer-readable media storing instructions which, when executed by at least one hardware processor, cause the at least one hardware processor to perform operations comprising: receiving first biometric data collected by at least one sensor at a first time, wherein the first biometric data is indicative of at least one physiological characteristic of a user; generating a signature key for the user based on the first biometric data, wherein the signature key is a cryptographic key, and wherein the signature key is a private key; transmitting the signature key to a certification service; receiving a certificate generated by the certification service, wherein the certificate includes a verification key that corresponds to the signature key and that is generated by the certification service based on the signature key, the certificate is presentable to verify an identity of the user, wherein the verification key is a public key; receiving second biometric data collected by the at least one sensor at a second time that is different than the first time; generating an additional signature key based on the second biometric data; transmitting the certificate and the additional signature key to a third party service to verify the identity of the user based on the additional signature key and the verification key included in the certificate; and receiving access to the third party service in response to the third party service determining that the additional signature key is associated with the verification key. 